#ifndef __CHANGINGSTATETIMER__
#define __CHANGINGSTATETIMER__

#include "../includes/includes.h"

#include "../components/MainComponent.h"
#include "../components/ElementComponent.h"

#include "../extras/animation/SimpleDockAnimator.h"

class ChangingStateTimer : public Timer
{
	public:
		ChangingStateTimer(MainComponent * mainComponent_);
		~ChangingStateTimer();

		void mouseIn();

		void mouseOut();

		void mouseDragging(Component * comp, const MouseEvent& e);
		void endDragging(Component * comp, const MouseEvent& e);
		void timerCallback();

	private:
		Component * mainComponent;

		uint32 startTime;

		SimpleDockAnimator * animator;

		bool changingState;
		bool hidden;
		bool shouldBeHidden;
		bool mouseInside;
};

#endif

